diff --git a/sklearn/impute.py b/sklearn/impute.py
index 39550e242..46efb6e8c 100644
--- a/sklearn/impute.py
+++ b/sklearn/impute.py
@@ -175,12 +175,13 @@ class SimpleImputer(BaseEstimator, TransformerMixin):
 
     """
     def __init__(self, missing_values=np.nan, strategy="mean",
-                 fill_value=None, verbose=0, copy=True):
+                 fill_value=None, verbose=0, copy=True, add_indicator=False):
         self.missing_values = missing_values
         self.strategy = strategy
         self.fill_value = fill_value
         self.verbose = verbose
         self.copy = copy
+        self.add_indicator = add_indicator
 
     def _validate_input(self, X):
         allowed_strategies = ["mean", "median", "most_frequent", "constant"]
@@ -272,6 +273,10 @@ class SimpleImputer(BaseEstimator, TransformerMixin):
                                                self.missing_values,
                                                fill_value)
 
+        if self.add_indicator:
+            self.indicator_ = MissingIndicator(missing_values=self.missing_values)
+            self.indicator_.fit(X)
+
         return self
 
     def _sparse_fit(self, X, strategy, missing_values, fill_value):
@@ -420,6 +425,13 @@ class SimpleImputer(BaseEstimator, TransformerMixin):
 
             X[coordinates] = values
 
+        if self.add_indicator:
+            if sparse.issparse(X):
+                hstack = sparse.hstack
+            else:
+                hstack = np.hstack
+            X = hstack((X, self.indicator_.transform(X)))
+
         return X
 
     def _more_tags(self):
